<?php

class SiteRouter implements RouterInterface
{
    /**
    * Pokrece kontroler klase tj. routa trenutni poziv stranice kroz kod aplikacije
    * npr. /o-meni url ce routat na OMeniController klasu
    **/
    static public function route($path_parts = array())
    {
        if (! empty($path_parts))
        {
            // nemoguce
        }

        $current_path_parts = self::_getPathArray('path');

        //Debug::dump('login', '$current_path_parts', $current_path_parts);

        if (!empty($current_path_parts))
        {
            self::routeDeeper($current_path_parts);
        }
        else
        {
            $designatedController = new OMeniController();
            $designatedController->_display();
        }
    }

    static public function routeDeeper($path_parts = array())
    {
        switch ($path_parts[0])
        {
            case 'admin':
                $first_part = array_shift($path_parts);
                AdminRouter::route($path_parts);
                break;
        }
    }

    /**
    * Dobiva putanju koja se treba ucitati tj. kontroler - akciju.
    *
    * @param string $path_get_var Naziv get variajble koja sadrzi putanju
    * @returns array
    **/
    static protected function _getPathArray($path_get_var)
    {
        $path_parts = array();

        $path = (isset($_GET[$path_get_var]) && !empty($_GET[$path_get_var])) ? strip_tags(trim($_GET[$path_get_var])) : '';

        if (!empty($path))
        {
            // micanje # ako ih ima
            if (strpos($path, '#') !== false)
                $path = substr($path, 0, strpos($path, '#'));

            // micanje / sa pocetka i kraja
            $path = trim($path, '/');

            // pretvaranje u niz
            $path_parts = explode('/', $path);
        }
        return $path_parts;
    }
}

?>